package com.love.marriage.userInfo.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Getter
@Setter
@Accessors(chain = true)
@Schema(name = "UserAllInfoExportVo", description = "用户完整信息导出Vo")
public class UserAllInfoExportVo {

    // 基本信息 - 按照前端columns顺序
    @Excel(name = "用户编码", width = 15)
    private String code;

    @Excel(name = "手机号码", width = 15)
    private String phone;

    @Excel(name = "来源", width = 10)
    private String source;

    @Excel(name = "关注公众号", width = 20)
    private String wechatGzhOpenid;

    @Excel(name = "实名认证-名称", width = 12)
    private String realName;

    @Excel(name = "实名认证-身份证号", width = 20)
    private String idCardNumber;

    @Excel(name = "介绍人电话", width = 12)
    private String instroPhone;

    @Excel(name = "介绍人编码", width = 12)
    private String instroCode;

    // 征婚档案信息
    @Excel(name = "征婚档案-昵称", width = 15)
    private String nickName;

    @Excel(name = "征婚档案-性别", width = 8)
    private String gender;

    @Excel(name = "征婚档案-出生年月", width = 15, exportFormat = "yyyy-MM-dd")
    private LocalDate birthYearMonth;

    @Excel(name = "征婚档案-身高", width = 8)
    private Integer height;

    @Excel(name = "征婚档案-体重", width = 8)
    private Integer weight;

    @Excel(name = "征婚档案-所在地", width = 20)
    private String residence;

    @Excel(name = "征婚档案-婚姻状况", width = 10)
    private String maritalStatus;

    @Excel(name = "征婚档案-学历", width = 10)
    private String education;

    @Excel(name = "征婚档案-职业", width = 15)
    private String occupation;

    @Excel(name = "征婚档案-收入状况", width = 12)
    private String annualIncome;

    @Excel(name = "征婚档案-车房状况", width = 15)
    private String carHouseStatus;

    @Excel(name = "征婚档案-学校", width = 15)
    private String schoolName;

    @Excel(name = "征婚档案-学历类型", width = 15)
    private String educationType;

    @Excel(name = "征婚档案-特别说明", width = 30)
    private String personalIntroduction;

    @Excel(name = "征婚档案-恋爱观", width = 30)
    private String loveView;

    @Excel(name = "征婚档案-理想伴侣", width = 30)
    private String idealPartner;

    @Excel(name = "征婚档案-联系电话", width = 15)
    private String contactPhone;

    @Excel(name = "征婚档案-星座", width = 12)
    private String zodiac;

    @Excel(name = "征婚档案-显示手机号", width = 12)
    private String showPhone;

    @Excel(name = "征婚档案-显示微信", width = 12)
    private String showWechat;

    @Excel(name = "征婚档案-自动互换联系方式", width = 12)
    private String autoExchangeContact;

    // 择偶要求信息
    @Excel(name = "择偶要求-年龄", width = 15)
    private String idealAgeRange;

    @Excel(name = "择偶要求-身高", width = 15)
    private String idealHeightRange;

    @Excel(name = "择偶要求-体重", width = 15)
    private String idealWeightRange;

    @Excel(name = "择偶要求-学历", width = 12)
    private String idealEducation;

    @Excel(name = "择偶要求-职业", width = 15)
    private String idealProfession;

    @Excel(name = "择偶要求-收入范围", width = 15)
    private String idealIncomeRange;

    @Excel(name = "择偶要求-车房状况", width = 15)
    private String idealHousingCarStatus;

    @Excel(name = "择偶要求-婚姻状况", width = 15)
    private String idealMaritalStatus;

    @Excel(name = "择偶要求-地区", width = 20)
    private String idealLocation;

    // 会员信息
    @Excel(name = "会员标识", width = 10)
    private String membershipFlag;

    @Excel(name = "会员类型", width = 15)
    private String membershipName;

    @Excel(name = "用户会员开始时间", width = 20, exportFormat = "yyyy-MM-dd")
    private LocalDateTime membershipStartTime;

    @Excel(name = "用户会员结束时间", width = 20, exportFormat = "yyyy-MM-dd")
    private LocalDateTime membershipEndTime;

    // 红娘信息
    @Excel(name = "红娘标识", width = 10)
    private String matchmakerFlag;

    @Excel(name = "红娘编码", width = 12)
    private String matchmakerNo;

    @Excel(name = "红娘职级", width = 12)
    private String matchmakerPositionLevelName;

    @Excel(name = "红娘姓名", width = 15)
    private String matchmakerName;

    @Excel(name = "红娘生日", width = 15, exportFormat = "yyyy-MM-dd")
    private LocalDate matchmakerBirthDate;

    @Excel(name = "红娘联系电话", width = 15)
    private String matchmakerContactPhone;

    @Excel(name = "红娘入职时间", width = 15, exportFormat = "yyyy-MM-dd")
    private LocalDate matchmakerEntryDate;

    @Excel(name = "红娘擅长领域", width = 20)
    private String matchmakerExpertise;

    @Excel(name = "红娘性别", width = 8)
    private String matchmakerGender;

    @Excel(name = "红娘所在区域", width = 20)
    private String matchmakerRegion;

    // 合伙人信息
    @Excel(name = "合伙人标识", width = 12)
    private String partnerFlag;

    @Excel(name = "合伙人名称", width = 15)
    private String partnerName;

    @Excel(name = "合伙人类型", width = 15)
    private String partnerTypeName;

    @Excel(name = "合伙人开始时间", width = 20, exportFormat = "yyyy-MM-dd")
    private LocalDateTime partnerStartTime;

    @Excel(name = "合伙人结束时间", width = 20, exportFormat = "yyyy-MM-dd")
    private LocalDateTime partnerEndTime;

    @Excel(name = "合伙人手机号码", width = 15)
    private String partnerPhoneNumber;

    @Excel(name = "合伙人需求描述", width = 30)
    private String partnerDemandDescription;

    @Excel(name = "合伙人所在地", width = 20)
    private String partnerResidence;

    @Excel(name = "合伙人单身标识", width = 12)
    private String partnerSingleFlag;
}